home *** CD-ROM | disk | FTP | other *** search
/ Carousel / CAROUSEL.cdr / mactosh / code / p_serlib.sit / Serial Library Source Code / serial.setBuffer.dll.c < prev    next >
C/C++ Source or Header  |  1989-07-27  |  2KB  |  88 lines

  1. /***********************************************************************/
  2. /*    
  3. /*    serial.setBuffer.dll.c
  4. /*    by Atul Butte
  5. /*    Copyright ⌐ 1989 by Microsoft Corporation
  6. /*    All Rights Reserved
  7. /*
  8. /*    version 1.0
  9. /*    
  10. /*    
  11. /*    This CALL/REGISTER creates and returns an input buffer of the size given.
  12. /*    
  13. /*    Excel usage:
  14. /*    
  15. /*    = Register( "serial library", "serial.setBuffer", "JHH" )
  16. /*    = Call( ref, portNumber, size )
  17. /*    
  18. /*    where
  19. /*        portNumber        = number of port (1 = modem, 2 = printer)
  20. /*        size            = size of buffer to allocate
  21. /*
  22. /***********************************************************************/
  23.  
  24. /***********************************************************************/
  25. /*
  26. /*    D E F I N E S
  27. /*
  28. /***********************************************************************/
  29.  
  30. #define ROUTINE_NAME        "serial.setBuffer"
  31. #define hNIL 0L
  32. #define pNIL 0L
  33.  
  34. /***********************************************************************/
  35. /*
  36. /*    I N C L U D E S
  37. /*
  38. /***********************************************************************/
  39.  
  40. #include "serial.h"
  41. #include "error.h"
  42. #include "get_port.h"
  43.  
  44. /***********************************************************************/
  45. /*
  46. /*    main
  47. /*
  48. /***********************************************************************/
  49.  
  50. pascal unsigned long main( port, cch )
  51.  
  52.     unsigned short            port;                    /* serial port to use */
  53.     unsigned short            cch;                    /* size of buffer to allocate */
  54.     
  55. {
  56.     register OSErr            err;                    /* result code from Toolbox routines */
  57.     short                    refIn;                    /* reference number for input port */
  58.     short                    refOut;                    /* reference number for output port */
  59.     Ptr                        pch;                    /* pointer to the new buffer */
  60.     
  61.     RememberA0();
  62.     SetUpA4();
  63.     
  64.     err = get_port( port, &refIn, &refOut );
  65.     if( err != noErr ) {
  66.         display_error( "Illegal port number." );
  67.         RestoreA4( );
  68.         return( err );
  69.     }
  70.     
  71.     pch = NewPtr( (long) cch );
  72.     if( pch == pNIL ) {
  73.         display_error( "Out of memory error." );
  74.         RestoreA4( );
  75.         return( 0 );
  76.     }
  77.     err = SerSetBuf( refIn, pch, cch );
  78.     if( err != noErr ) {
  79.         display_error( "Error in setting buffer." );
  80.         RestoreA4( );
  81.         return( 0 );
  82.     }
  83.     
  84.     RestoreA4( );
  85.     return( (unsigned long) pch );
  86. }
  87.  
  88. #include "get_port.c"